package zlog

import (
	"github.com/sirupsen/logrus"
	"os"
)

func LogInit(isDev bool)  {
	// 日志系统初始化
	if isDev {
		logrus.SetFormatter(&logrus.TextFormatter{ForceColors: true})
		logrus.SetOutput(os.Stdout)
		logrus.SetLevel(logrus.TraceLevel)
	} else {
		logrus.SetFormatter(&logrus.JSONFormatter{})
		file, err := os.OpenFile("app.logrus", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
		if err == nil {
			logrus.SetOutput(file)
		} else {
			logrus.Info("Failed to logrus to file, using default stderr")
		}
		logrus.SetLevel(logrus.WarnLevel)
	}
}

func Trace(args ...interface{}) {
	logrus.Trace(args...)
}

func Debug(args ...interface{}) {
	logrus.Debug(args...)
}

func Print(args ...interface{}) {
	logrus.Print(args...)
}

func Info(args ...interface{}) {
	logrus.Info(args...)
}

func Warn(args ...interface{}) {
	logrus.Warn(args...)
}

func Warning(args ...interface{}) {
	logrus.Warning(args...)
}

func Error(args ...interface{}) {
	logrus.Error(args...)
}

func Panic(args ...interface{}) {
	logrus.Panic(args...)
}

func Fatal(args ...interface{}) {
	logrus.Fatal(args...)
}

func TraceFn(fn logrus.LogFunction) {
	logrus.TraceFn(fn)
}

func DebugFn(fn logrus.LogFunction) {
	logrus.DebugFn(fn)
}

func PrintFn(fn logrus.LogFunction) {
	logrus.PrintFn(fn)
}

func InfoFn(fn logrus.LogFunction) {
	logrus.InfoFn(fn)
}

func WarnFn(fn logrus.LogFunction) {
	logrus.WarnFn(fn)
}

func WarningFn(fn logrus.LogFunction) {
	logrus.WarningFn(fn)
}

func ErrorFn(fn logrus.LogFunction) {
	logrus.ErrorFn(fn)
}

func PanicFn(fn logrus.LogFunction) {
	logrus.PanicFn(fn)
}

func FatalFn(fn logrus.LogFunction) {
	logrus.FatalFn(fn)
}

func Tracef(format string, args ...interface{}) {
	logrus.Tracef(format, args...)
}

func Debugf(format string, args ...interface{}) {
	logrus.Debugf(format, args...)
}

func Printf(format string, args ...interface{}) {
	logrus.Printf(format, args...)
}

func Infof(format string, args ...interface{}) {
	logrus.Infof(format, args...)
}

func Warnf(format string, args ...interface{}) {
	logrus.Warnf(format, args...)
}

func Warningf(format string, args ...interface{}) {
	logrus.Warningf(format, args...)
}

func Errorf(format string, args ...interface{}) {
	logrus.Errorf(format, args...)
}

func Panicf(format string, args ...interface{}) {
	logrus.Panicf(format, args...)
}

func Fatalf(format string, args ...interface{}) {
	logrus.Fatalf(format, args...)
}

func Traceln(args ...interface{}) {
	logrus.Traceln(args...)
}

func Debugln(args ...interface{}) {
	logrus.Debugln(args...)
}

func Println(args ...interface{}) {
	logrus.Println(args...)
}

func Infoln(args ...interface{}) {
	logrus.Infoln(args...)
}

func Warnln(args ...interface{}) {
	logrus.Warnln(args...)
}

func Warningln(args ...interface{}) {
	logrus.Warningln(args...)
}

func Errorln(args ...interface{}) {
	logrus.Errorln(args...)
}

func Panicln(args ...interface{}) {
	logrus.Panicln(args...)
}

func Fatalln(args ...interface{}) {
	logrus.Fatalln(args...)
}
